{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "4ef8ce5d-36c7-40e4-a0c7-020115cdc5e4",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn.tree import DecisionTreeRegressor\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "from statsmodels.tsa.ar_model import AutoReg\n",
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d3a088e3-1c8f-4b11-b535-da63aac3d9e8",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     年份  天然气可供量(亿立方米)  天然气生产量(亿立方米)  进口天然气量(亿立方米)  出口天然气量(-)(亿立方米)  \\\n",
      "0  2021        3773.8        2155.5        1673.5             55.2   \n",
      "1  2020        3340.2        1994.9        1397.0             51.7   \n",
      "2  2019        3057.5        1761.7        1331.8             36.1   \n",
      "3  2018        2814.3        1601.6        1246.4             33.6   \n",
      "4  2017        2390.7        1480.4         945.6             35.3   \n",
      "\n",
      "   年初年末天然气库存差额(亿立方米)  天然气能源消费总量(亿立方米)  农、林、牧、渔业天然气消费总量(亿立方米)  工业天然气消费总量(亿立方米)  \\\n",
      "0                0.0           3773.0                    1.7           2678.2   \n",
      "1                0.0           3339.9                    1.3           2304.0   \n",
      "2                0.0           3059.7                    1.2           2092.1   \n",
      "3                0.0           2817.1                    1.3           1940.1   \n",
      "4                0.0           2393.7                    1.1           1575.2   \n",
      "\n",
      "   建筑业天然气消费总量(亿立方米)  交通运输、仓储和邮政业天然气消费总量(亿立方米)  批发和零售业、住宿和餐饮业天然气消费总量(亿立方米)  \\\n",
      "0               3.2                     366.3                        70.2   \n",
      "1               2.6                     354.3                        62.1   \n",
      "2               2.8                     341.5                        62.5   \n",
      "3               2.5                     286.2                        60.8   \n",
      "4               1.8                     284.7                        57.6   \n",
      "\n",
      "   其他天然气消费总量(亿立方米)  居民生活天然气消费总量(亿立方米)  天然气平衡差额(亿立方米)  \n",
      "0             61.0              592.3            0.8  \n",
      "1             55.6              560.0            0.3  \n",
      "2             57.3              502.3           -2.2  \n",
      "3             57.9              468.4           -2.8  \n",
      "4             52.9              420.3           -3.0  \n"
     ]
    }
   ],
   "source": [
    "# 读取数据\n",
    "import os \n",
    "os.chdir(r\"D:\\Study\\Python\\ClearData(1)\")\n",
    "df = pd.read_csv(\"Natural_gas_20_interpolate.csv\", encoding='utf-8')\n",
    "# 打印出数据的前5行，检查数据是否导入正确\n",
    "print(df.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3c3a83aa-a979-463b-b27b-1c5c91f1be1c",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 按照年份升序\n",
    "df.sort_values(by='年份',inplace=True,ignore_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5ff8e0c3-6aa2-40f9-aea8-0ffdf6f9dc50",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>年份</th>\n",
       "      <th>天然气可供量(亿立方米)</th>\n",
       "      <th>天然气生产量(亿立方米)</th>\n",
       "      <th>进口天然气量(亿立方米)</th>\n",
       "      <th>出口天然气量(-)(亿立方米)</th>\n",
       "      <th>年初年末天然气库存差额(亿立方米)</th>\n",
       "      <th>天然气能源消费总量(亿立方米)</th>\n",
       "      <th>农、林、牧、渔业天然气消费总量(亿立方米)</th>\n",
       "      <th>工业天然气消费总量(亿立方米)</th>\n",
       "      <th>建筑业天然气消费总量(亿立方米)</th>\n",
       "      <th>交通运输、仓储和邮政业天然气消费总量(亿立方米)</th>\n",
       "      <th>批发和零售业、住宿和餐饮业天然气消费总量(亿立方米)</th>\n",
       "      <th>其他天然气消费总量(亿立方米)</th>\n",
       "      <th>居民生活天然气消费总量(亿立方米)</th>\n",
       "      <th>天然气平衡差额(亿立方米)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2004</td>\n",
       "      <td>390.2</td>\n",
       "      <td>414.6</td>\n",
       "      <td>9.5</td>\n",
       "      <td>24.4</td>\n",
       "      <td>0.0</td>\n",
       "      <td>396.7</td>\n",
       "      <td>0.5</td>\n",
       "      <td>278.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>26.2</td>\n",
       "      <td>9.2</td>\n",
       "      <td>14.1</td>\n",
       "      <td>67.2</td>\n",
       "      <td>-6.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2005</td>\n",
       "      <td>463.5</td>\n",
       "      <td>493.2</td>\n",
       "      <td>9.5</td>\n",
       "      <td>29.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>466.1</td>\n",
       "      <td>0.5</td>\n",
       "      <td>327.2</td>\n",
       "      <td>1.5</td>\n",
       "      <td>38.0</td>\n",
       "      <td>10.8</td>\n",
       "      <td>9.1</td>\n",
       "      <td>79.4</td>\n",
       "      <td>-2.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2006</td>\n",
       "      <td>566.1</td>\n",
       "      <td>585.5</td>\n",
       "      <td>9.5</td>\n",
       "      <td>29.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>573.3</td>\n",
       "      <td>0.5</td>\n",
       "      <td>398.9</td>\n",
       "      <td>1.7</td>\n",
       "      <td>44.2</td>\n",
       "      <td>13.2</td>\n",
       "      <td>12.8</td>\n",
       "      <td>102.6</td>\n",
       "      <td>-7.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2007</td>\n",
       "      <td>706.6</td>\n",
       "      <td>692.4</td>\n",
       "      <td>40.2</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>705.2</td>\n",
       "      <td>0.5</td>\n",
       "      <td>479.7</td>\n",
       "      <td>2.1</td>\n",
       "      <td>46.9</td>\n",
       "      <td>17.1</td>\n",
       "      <td>16.1</td>\n",
       "      <td>143.4</td>\n",
       "      <td>1.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2008</td>\n",
       "      <td>816.6</td>\n",
       "      <td>803.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>32.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>812.9</td>\n",
       "      <td>0.5</td>\n",
       "      <td>531.6</td>\n",
       "      <td>1.0</td>\n",
       "      <td>71.6</td>\n",
       "      <td>17.8</td>\n",
       "      <td>20.9</td>\n",
       "      <td>170.1</td>\n",
       "      <td>3.7</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     年份  天然气可供量(亿立方米)  天然气生产量(亿立方米)  进口天然气量(亿立方米)  出口天然气量(-)(亿立方米)  \\\n",
       "0  2004         390.2         414.6           9.5             24.4   \n",
       "1  2005         463.5         493.2           9.5             29.7   \n",
       "2  2006         566.1         585.5           9.5             29.0   \n",
       "3  2007         706.6         692.4          40.2             26.0   \n",
       "4  2008         816.6         803.0          46.0             32.5   \n",
       "\n",
       "   年初年末天然气库存差额(亿立方米)  天然气能源消费总量(亿立方米)  农、林、牧、渔业天然气消费总量(亿立方米)  工业天然气消费总量(亿立方米)  \\\n",
       "0                0.0            396.7                    0.5            278.6   \n",
       "1                0.0            466.1                    0.5            327.2   \n",
       "2                0.0            573.3                    0.5            398.9   \n",
       "3                0.0            705.2                    0.5            479.7   \n",
       "4                0.0            812.9                    0.5            531.6   \n",
       "\n",
       "   建筑业天然气消费总量(亿立方米)  交通运输、仓储和邮政业天然气消费总量(亿立方米)  批发和零售业、住宿和餐饮业天然气消费总量(亿立方米)  \\\n",
       "0               1.4                      26.2                         9.2   \n",
       "1               1.5                      38.0                        10.8   \n",
       "2               1.7                      44.2                        13.2   \n",
       "3               2.1                      46.9                        17.1   \n",
       "4               1.0                      71.6                        17.8   \n",
       "\n",
       "   其他天然气消费总量(亿立方米)  居民生活天然气消费总量(亿立方米)  天然气平衡差额(亿立方米)  \n",
       "0             14.1               67.2           -6.5  \n",
       "1              9.1               79.4           -2.6  \n",
       "2             12.8              102.6           -7.3  \n",
       "3             16.1              143.4            1.4  \n",
       "4             20.9              170.1            3.7  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "dd55059d-deb9-4810-b7dd-b659476430e4",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "x_columns=[\"天然气能源消费总量(亿立方米)\",\"天然气可供量(亿立方米)\",\n",
    "           \"工业天然气消费总量(亿立方米)\",\"建筑业天然气消费总量(亿立方米)\",\n",
    "           \"居民生活天然气消费总量(亿立方米)\"]\n",
    "y_columns=['天然气生产量(亿立方米)']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "bc38d114-109c-4ca6-ba56-85b58079d7c0",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 划分特征值X和目标值y\n",
    "X = df[x_columns]\n",
    "y = df[y_columns]\n",
    "# 划分数据集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "7dd8e9fa-9dae-4546-ae9a-e8b00a719409",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 决策树模型训练\n",
    "dtr = DecisionTreeRegressor(max_depth=3,ccp_alpha=0.001).fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "951ddd06-7ac6-4846-9750-07b02c2fa7b9",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "#模型预测\n",
    "train_pred = dtr.predict(X_train) #训练集预测\n",
    "test_pred = dtr.predict(X_test) #测试集预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "1ed6a109-f0dc-4ff3-ae55-4d776683b889",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def scores(y_true, y_pred):\n",
    "    \"\"\"\n",
    "    计算模型评价指标 R2\\MAE\\RMSE\\SMAPE\n",
    "    \"\"\"\n",
    "    r2 = r2_score(y_true, y_pred)\n",
    "    MAE = mean_absolute_error(y_true, y_pred)\n",
    "    RMSE = np.sqrt(mean_squared_error(y_true, y_pred))\n",
    "#     SMAPE = calculate_smape(y_true, y_pred)\n",
    "    SMAPE = 0\n",
    "    # 根据 flag 输出结果\n",
    "    evaluation_results = {'R2': r2, 'MAE': MAE, 'RMSE': RMSE, 'SMAPE': SMAPE}\n",
    "    for metric, value in evaluation_results.items():\n",
    "        print(f\"{metric}: {value}\")\n",
    "\n",
    "    return evaluation_results\n",
    "\n",
    "def calculate_smape(actual, forecast):\n",
    "    \"\"\"\n",
    "    计算SMAPE\n",
    "    :param actual: 实际观测值\n",
    "    :param forecast: 预测值\n",
    "    :return: SMAPE值\n",
    "    \"\"\"\n",
    "    if len(actual) != len(forecast):\n",
    "        raise ValueError(\"实际观测值和预测值的长度不一致\")\n",
    "\n",
    "    n = len(actual)\n",
    "    total_smape = 0\n",
    "    for i in range(n):\n",
    "        diff = abs(actual[i] - forecast[i])\n",
    "        denom = (abs(actual[i]) + abs(forecast[i])) / 2\n",
    "        total_smape += diff / denom\n",
    "\n",
    "    smape = (total_smape / n) * 100\n",
    "    return smape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "381a2800-6c9d-4b5a-81e4-aa865847bbef",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Metrics for the Training Set\n",
      "R2: 0.9964025833296678\n",
      "MAE: 25.43333333333334\n",
      "RMSE: 31.501706302992552\n",
      "SMAPE: 0\n",
      "\n",
      "Metrics for the Test Set\n",
      "R2: 0.8702815858480528\n",
      "MAE: 133.79166666666669\n",
      "RMSE: 134.82484779644048\n",
      "SMAPE: 0\n"
     ]
    }
   ],
   "source": [
    "print('Metrics for the Training Set')\n",
    "train_results = scores(y_train,train_pred)\n",
    "print()\n",
    "print('Metrics for the Test Set')\n",
    "test_results = scores(y_test,test_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "11857b38-c938-41b4-bf9f-15719772cf86",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 合并训练集和测试集的数据\n",
    "y_train_plot = y_train.copy()\n",
    "y_test_plot = y_test.copy()\n",
    "y_train_plot['模型拟合数据'] = train_pred\n",
    "y_test_plot['模型拟合数据'] = test_pred\n",
    "y_concat = pd.concat([y_train_plot,y_test_plot]).sort_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "572e3457-e043-43a0-a0eb-8e73d8f4fd12",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+8AAAE3CAYAAADbiHBOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACCgklEQVR4nOzdeVhUZf/H8fcw7Lu4iyCo5YK7omSmmZZZmu2Zu2Zq9VhmWVmWaWX2ZGXbLzUzsz0rrZ4yrUxLy91w33FD3BDZmYGZ8/tjdHQCEZDdz+u65sI59z3n3N8BPHzn3kyGYRiIiIiIiIiISLnlVtYNEBEREREREZH8KXkXERERERERKeeUvIuIiIiIiIiUc0reRURERERERMo5Je8iIiIiIiIi5ZySdxEREREREZFyTsm7iIiIiIiISDmn5F1ERERERESknFPyLiIiIiIiIlLOKXkXEZHLxrJlyzCZTJhMJvz9/Wnfvj0ffPBBiVxryJAhDBky5JLOYTKZWLZsWbG053zXXnut833496O0PP/8885rurm5ER4ezujRozl9+nSptUFERKQicS/rBoiIiJS2Tz/9lKpVq/LRRx8xfPhwDh06xPPPP1+s1yiO861du5ZGjRpdemP+ZebMmaSmppKQkMAtt9zCtGnT6NKlS7Ff52I8PT1ZuXIlVquV9evX8+yzz7Jt2zZ+++23Um+LiIhIeafkXURELjtNmzalVatW9OjRg6ysLKZMmcKDDz5IjRo1iu0aERERl3yOdu3aXXpD8nD2A4H9+/cD0KBBgxK7Vn5MJpPzuh07dgTg4Ycf5uDBg4SHh5d6e0RERMozDZsXEZHL2siRI8nOzubnn38u66Zc9s4m8ocPHy7jloiIiJQ/St5FROSy1rJlSwC2b98OwFdffUWzZs3w8fGhdevWuYZwb9myhe7du+Pj40N4eDjPPvssOTk5uc57oTnvhmEwefJk6tWrh6+vLy1btmTRokV5tu1Cc97T0tIYNWoUISEhBAUFMWTIEJKSkpzlERERzJ07l5dffplatWpRpUoVRo8ejWEYBX1bmDt3LhEREVgsFp5++mnq1avHhx9+6FLn3XffpUGDBvj5+dGpUyc2btzoUr506VLat2+Pt7c3TZo04fPPP8/3mkePHgWgevXqANhsNp5//nnq1q1LQEAAN954I/v27XN5zTfffEPDhg2pUqUK999/PyNHjiQ4OJgDBw4AjukL1157LcnJyTz44IPUrl2bpUuXOl9fkGvMmDGDK6+8Eh8fH6688krmzZvnUr5p0ya6detGYGAg1atXZ9iwYaSnp7vUef3116lXrx7e3t5069aNLVu2uJRfe+21PP/882zfvp3evXsTHByMzWbL9/0SEZHLi5J3ERG5rIWEhACQlJTE0qVL6du3L3feeSeLFy8mJiaGnj17smPHDgDi4+Pp0qULdrud77//nhdeeIHp06fz4osvFvh6H330EZMmTeLJJ5/kp59+omPHjtxxxx2cOnWqwOe49dZb+eGHH3j33XeZM2cOf/zxBzfeeKNLsjd9+nS+++47PvjgA5544gneeecdfvzxxwJf46y77rqLP/74g7Fjx9KhQwfn8Tlz5vDoo48yZswYfvrpJ2rUqMF1111HYmIiADt37uTGG2+kXbt2LFmyhHvuuYd+/fpdcD77jh07mDRpElFRUTRs2BCASZMmMX36dF566SW+++470tPT6d69u/PDkri4OPr168eDDz7IF198wa+//kpqaio//fST8wMAAKvVSrdu3Th48CDPPPMMV155pbPsYtdYtmwZDzzwAP3792fx4sXce++9DB06lG3btjnP0adPH7Kzs/nuu+949913Wbx4MS+88IKz/IUXXmD8+PE89NBDfP/997i5udG5c2cOHjzo8h7s27ePLl26ULduXV588UXc3PRnmoiInMcQERG5TPz+++8GYGzcuNF5zGq1GoAxYsQIo0uXLkafPn2cZTabzahWrZrx3HPPGYZhGE8//bQRHBxsnD592lln+vTpxlNPPZXrWoMHDzYGDx6c6/jEiRONoKAgIysryzAMw0hLSzN++OEHl3OeBRi///57njEsWbLEeWzNmjUGYCxcuNAwDMOoV6+eUbt2bSM1NdVZp2nTpsaLL77ocq64uDgDMBYsWJDr2h9++KEBGH369DFycnJylderV8945JFHnM+TkpIMs9lszJkzxxl/q1atXF7Tpk0bY9CgQc73AXB5REVFGdu2bTMMwzAyMzMNb29v44033nC+ftOmTQZgLF261DAMw5g/f75Ro0YNZ/kTTzxh3HDDDS7XPHud//znP7liKMg1zr4PR48eNQzD8TPxww8/GAkJCYZhGEZ2drbh7u5uTJ061XmODRs2GGvWrDEMwzDS09MNX19f4+mnn3aWp6amGjVq1DDGjBnjPNalSxcDML7++utc7RQRETEMw9BHuiIiclk7O9w8JCSEzZs389133zm3MDObzZw8eZLdu3cDsHHjRlq2bElQUJDz9Y888ggvv/xyga9377334u7uTlRUFCNGjODLL7/kmmuucTlnftauXYvZbKZr167OY9HR0QQGBrJ27VrnsSFDhuDv7+98Xr16dbKzswvcTnCsBv/WW29hNptdjqempnLgwAHefPNN53tVpUoVbDab873avHkz//zzj8s2dBs2bHCWnz3/xo0b+emnnzCZTDzyyCM0adIEgN27d5OVlcWjjz7qfH2LFi2cZQCNGzcmMTGRlStXcurUKf744w+aNm2aK45q1arl+T0qyDV69+5NvXr1aNOmDYMHD2bGjBlER0dTq1YtANzd3Rk1ahTPPvssN910ExMnTsRqtRIdHQ3A1q1bycjIoHv37s7r+vv706FDB5fvF8CNN97IHXfcUdBvj4iIXGa02ryIiFzWNm/eDEBUVBQADz74IPfff79LneDgYMAxX/3fe6EfO3aM3bt307FjxwINc27UqBG7d+9m8eLF/PXXX0ycOJHnnnuOjRs3ugz1vhDjAvPWTSaTS1mDBg0ueq6LqV27dr6rvr/44ovcfPPNLsfOX7H/1ltvZeLEiS7lvr6+zn+bTCZatWpFq1atuOOOO5g6dSrDhg1z+bBgzpw5tG7d2uUcdevWdbavbt26dO7cGbvdTvv27ZkwYUKudkZFRbl8kPFv+V2jatWqbNu2jSVLlrBy5UrefPNNxo8fz+rVq2ncuDEAb7/9NoMGDWLZsmUsW7aMF154gRdffJGnn37a+T3598+Nm5tbru/l+dMSRERE/k097yIicll7//338fb25qabbqJZs2YkJCQ4E8pWrVqxcOFC51zx1q1bExsbS0pKivP1//d//0efPn0KPD959uzZLF++nL59+/LWW2+xZs0a4uPj+d///leg10dHR2Oz2Vi+fLnz2Pr160lOTnb29gK5esuLU0BAAOHh4SQmJrq8V7Nnz2bFihUANGvWjIMHD7qUr1y58oKL1j333HPExcXx2WefAdCwYUO8vLxITU11vr5Jkya88cYbbNq0CXDMV7/rrrs4duwYcXFxrFq1iqpVqxY4joJc49tvv+WLL77g1ltv5dVXXyU2NhbAGcfhw4cZM2YMzZs3Z9y4cfz444/cf//9zJw5E3B8cODr6+sy1z89PZ1Vq1a5fL9EREQuRj3vIiJy2dm2bRsnTpzg448/5ssvv+Stt94iJCSE5557juuvv55nnnmGHj16sHLlSiZPnsz8+fMBR6/8jBkzuP3223nyySc5cuQIb7/9NqNGjSrwtU+cOMHzzz+PxWIhLCyM77//Hih4T3nXrl3p1q0bQ4YM4dVXX8XT05MnnniC9u3b07t378K/GUU0ceJE5+rtMTExLFiwgJkzZzJw4EAAxo8fT4sWLRgxYgT9+vVj586dPPbYY0yZMiXP8zVv3pxbb72VKVOm0L9/f3x8fHjiiSd4/vnn8fLyokmTJsycOZMffviBSZMmAeDn58f333/P1VdfTWhoKJmZmURERODj41OgGApyDYvFwqOPPgo4humvWrWK1NRU5/crODiYjz/+mKysLPr160dKSgpLly51lvv5+fHUU0/x0ksvERQURMuWLZk2bRpWq5WxY8cW/RsgIiKXnzKdcS8iIlKKzi72Bhi+vr7G1VdfnWuxti+//NKIiooyvLy8jMaNGxsffvihS/nmzZuNbt26Gd7e3ka9evWMSZMmGVarNde1LrRgXXZ2tjF+/HgjIiLC8PLyMho0aGC88847ebaXPBasMwzHgmcjRowwgoODjYCAAGPQoEHGqVOnnOX16tXL1e4uXboYEydOdDl2sQXr6tWrl2e7znr77beN+vXrG97e3kbr1q2N//3vfy7lv/32mxEdHW14enoaERERxiuvvOIsmzhxouHl5eVSf+PGjQZgfPXVV4ZhGEZOTo4xceJEIzQ01PDx8TGuvvpq46+//nKp7+3tbVSvXt0wm80GYHh6ehpvvvmmy3W6dOlywRgudg3DMIxp06YZV1xxheHt7W3UrVvXeO655wy73e4sX7VqldG1a1cjKCjICAoKMnr16mXExcXlOkdYWJjh5eVldO3a1di8ebNLeV7fHxERkfOZDKMQm76KiIiIlBNhYWEMHDiQm2++GU9PT5KSkpg2bRonT55kw4YNZd08ERGRYqXkXURERCqkDz/8kHfeeYfdu3eTmZlJSEgIV111FRMmTKBdu3Zl3TwREZFipeRdREREREREpJzTavMiIiIiIiIi5ZySdxEREREREZFyTsm7iIiIiIiISDmn5F1ERERERESknHMv6waUF3a7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Lnz77bds3LgRgPr16zN06FA2bdqEyWTi4MGD+Pr6snbtWsCRJC9evJjrr7+ekJAQLBaLczu1tLQ0NmzYwKRJkwDHSvbXXnstP/30E0Ce27Kd7b2fOnUqjzzyCAsWLCAuLo558+bRpo3rEBiLxcIjjzzC448/nus8zz//PCdOnHA59uabbzJq1CjuuOMONm/ezPHjx2nbti033XQTfn5+BAUFMXToUHr16uXyus8//5wqVarQuHFjAOLj46latSoPPfQQixYtomrVqgB89913nDp1igMHDhTuTRcREREREQy7ne1rlpD+94c0O72UDiYrAFbDzJaATnhED6Hp1bdQS1NUC0zvVCXm7+9Phw4dnMk7wMyZM3F3d2fHjh107dqVTp06YRgG8+bNIzMz09nbfurUKZdzDRgwgE6dOuUabp+f6tWr88wzz/DEE0+wdOlSRo8ezS+//MKAAQPo3Lkzt99+u7NuXnu5ny+vRfo2bdqEv78/Xbp0ITs7mz59+jh7/e+//36GDh3KG2+84fKaKlWquDz/+++/naMMJk6cyJAhQwA4ffp0rnUBREREREQkfyePHmLPL+8Tum8+TY0jjoMm2O8WxtEGd3Pl9ffRpkbea1JJ/i7PNfYvY25ubnz22Wf07NmTDz74gA8++IBjx45x++23k5KSgslkuuA+7Hk5f+X5jz/+mKVLlzo/ABg7diwPP/wwDzzwAHfffTfz5s2jW7duvPHGGzz00ENYLBbnaw3DYMqUKUREROR6TJ8+Pc823XPPPSxdupS6desSFBTE1q1beemll1izZg0vvvgi3bp14/7778/1QcTZdnt4eLBw4ULuuOOOwryFIiIiIiJyHltODrFLv2LjqzcT9F5LYva+SZhxhAzDizVVbmbHzd9Qb8ImYvo/R4gS9yJTz/tlwGq1YrFYiI+PJzo6mvbt27NkyRLnQm4//fQT48ePJyoqiueff55x48bh7+/v0huenZ3Njz/+yIQJE5zHbDYbqamp7Nixg4YNG5KUlMQDDzzgkgy/8sor7N27l7Vr1zoXpevbty916tTBy8vLWc9isfD0009fcNj84cOHXY7FxsbywQcf8PPPPzNq1CgeeeQRTp8+zZNPPskdd9zBRx99xLXXXsuAAQNo3rw5P/30Ey1btiQxMZHXXnuNTp06YbFY2L17N7179+a3335jwoQJTJs2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zJhBQEAAt912G1OmTMHPz4+FCxfSr18/AgICsNlsLF++nKioKIB8yy6momwVN25+LPPXHy628/mSRRPTAaLc9hNlOkBTt/1caTqMlyn3BwQWw52dRhhb7RFsNSLYZq/HDiOcDLyLrT0VVZPagXw0LJoaAXovRERERESkYAqTh5bb5D0/8fHxrFu3jo4dO1K9evUCl+WnoiTvTy/YzLcbipa8h5BMU/bTxLSfJsTRxHSAehzFzZT7RyDF8GUH9dhmRLCdSLYbEeyjDjnlc7BGmep8RXWm3d2SQG+Psm6KiIiIiIhUIJU+eS8JFSV5LxDDcOyXfnal97Nz1FMT8q4fUNt1bnrtFhBcr1LOTxcRERERESkvCpOHqhu1orNlw4mduRN1S0oelU1QtYFrol6rBfgXfISCiIiIiIiIlD4l7xVNQiwcWuP4enQTHN+e9/7pZk+o0eRMot7S8bVmFHj5l36bRURERERE5JIoea9o/nwNtn3neswrEGo1d+1Rr94IzJqDLSIiIiIiUhkoea9oIq6B7Mx/7Z9eD9zcyrplIiIiIiIiUkKUvFc07e93PEREREREROSyoe5aERERERERkXJOybuIiIiIiIhIOafkXURERERERKScU/IuIiIiIiIiUs4peRcREREREREp55S8i4iIiIiIiJRzSt5FREREREREyjnt836GYRgApKSklHFLRERERERE5HJwNv88m4/mR8n7GampqQCEhYWVcUtERERERETkcpKamkpQUFC+dUxGQVL8y4DdbufIkSMEBARgMpnKujkXlJKSQlhYGIcOHSIwMLCsm1NkiqN8qQxxVIYYQHGUN5UhjsoQAyiO8qQyxACKo7ypDHFUhhhAcZQ2wzBITU2lTp06uLnlP6tdPe9nuLm5Ubdu3bJuRoEFBgaW6x/CglIc5UtliKMyxACKo7ypDHFUhhhAcZQnlSEGUBzlTWWIozLEAIqjNF2sx/0sLVgnIiIiIiIiUs4peRcREREREREp55S8VzBeXl5MnDgRLy+vsm7KJVEc5UtliKMyxACKo7ypDHFUhhhAcZQnlSEGUBzlTWWIozLEAIqjPNOCdSIiIiIiIiLlnHreRURERERERMo5Je8iIiIiIiIi5ZySdxEREREREZFyTsm7iIiIVAqJiYn89ddfnDx5sqybIiIiUuyUvJcD3333HfXr18fd3Z0O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fR8viRjOqkjJu8kwSnGlBym0+Ph41q1bR8eOHalevXqBy8qbyhBHZYgBFEd5UhligKK3tbzFWN7aU1SVIY7KEAMojvKmMsRRGWIAxVHeVIb7eHlqS0lS8i4iIiIiIiJSzmm1eREREREREZFyTsm7iIiIiIiISDmn5F1ERERERESknFPyLiIiIvkq7PI4a9asIT09PdfxnJwcsrKyiqtZIiIilxUl7yIiInJBiYmJ1KlTh2+//bbAr+nXrx+ffvopADt37uTNN98E4M477+SLL74okXaKiIhUdkreRURE5IKmTp2Kr68vN910U64ywzCwWq1kZ2c7jy1fvhyr1crQoUMB+Oabb/jtt98A6N27N4sWLSqdhouIiFQy2ipORERE8rRp0yaio6Np1KgRbm6Oz/t37txJaGgo/v7+2Gw2LBYLDz30EI888ggA119/PTfccAPjxo3DbrfTqFEj3n77bW688UYSExOpV68eu3fvpnbt2mUZmoiISIWj5F1ERERySU9Pp3379kRHRzN37lzn8VatWjFt2jS6d++e6zVLliyhR48efP755/Tt25e5c+fy9ttvs379emedcePGcfLkST788MPSCENERKTS0LB5ERERcZGdnc0dd9xBdnY2b7/9dp517HY72dnZzoXpUlNTeeCBBwgJCQHg4MGDjB07lrfeesvldc899xxLlizh66+/LtkgREREKhn1vIuIiIgLwzBYsmQJYWFh3HLLLbi5ueHr6ws4hs3XqVMHPz8/bDYbwcHBrFy5ktmzZ7Ny5UqSkpLo1q0bb7/9NgEBAezevRtPT0+X87dq1Yo1a9awc+dODZ8XEREpICXvIiIickHNmjVj9uzZxMTEAPkPm8/Ozuauu+7izjvvJCMjg6FDh7J9+3buuOMOdu/eDUDfvn25/vrr6datGxEREaUZioiISIXmXtYNEBERkfLFbrdjGAZms9m5UF1+bDYbbm5ueHh4AODu7s6IESMASEpKolatWs662dnZ+Pn5KXEXEREpJCXvIiIi4uKbb77hiSeewMvLC3d3d0aNGuUs27lzJ6NGjcLf3x+AnJwcLBYLH3/8sbN3/nwrVqygXbt2zudZWVn4+PiUfBAiIiKVjJJ3ERERcXHXXXdx11135VmW37B5cMyXPyszM5OPPvqI2bNnO4+lpKQ4E38REREpOCXvIiIiUmA2mw2bzXbBcqvVSk5ODikpKfTt25c2bdrQuXNn9uzZw6FDh9iyZQt16tQpxRaLiIhUDkreRUREpMAyMzOxWq0XLLdarWRnZzNr1izMZrNzj/gff/yRGTNmMHLkSJo0aVJKrRUREak8tNq8iIiIlAi73V6gBe9ERETk4pS8i4iIiIiIiJRz+jhcREREREREpJxT8i4iIiIiIiJSzil5FxERERERESnnlLyLiIiIiIiIlHNK3kVERERERETKOSXvIiIiIiIiIuWckncRERERERGRck7Ju4iIiIiIiEg5p+RdRERERP5/o2AUjIJRMAoGOQAAQooNOOwQqdAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1200x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 测试集的真实值与预测值可视化\n",
    "plt.figure(figsize=(12,3))\n",
    "plt.plot(df['年份'],y_concat['模型拟合数据'],label= '模型拟合数据')\n",
    "plt.plot(df['年份'],y_concat[y_columns],label= '真实值')\n",
    "plt.title('DecisionTreeRegressor')\n",
    "plt.legend()\n",
    "plt.xticks(df['年份'])\n",
    "plt.xlabel('年份')\n",
    "plt.ylabel(y_columns)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "ec142d48-24c9-4dba-8e4f-e740042f1653",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 预测未来20年的输出数据\n",
    "last_year = df['年份'].max()\n",
    "future_df = list(range(last_year,last_year+21))\n",
    "# 拟合自回归模型\n",
    "X_preds = []\n",
    "for col in x_columns:\n",
    "    model = AutoReg(df[col],lags=2)\n",
    "    model_fit = model.fit()\n",
    "    predictions = model_fit.predict(start = df.shape[0],end=df.shape[0]+19,dynamic = False)\n",
    "    X_preds.append(predictions.to_list())\n",
    "X_future = np.array(X_preds).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "8acc812c-583f-48d0-9c9f-2f18e38e26b4",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 预测未来20年的y\n",
    "future_preds = dtr.predict(pd.DataFrame(X_future,columns=X.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "05956f68-9b29-4ab2-a561-1bff2f608bf8",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+8AAAE3CAYAAADbiHBOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFQ0lEQVR4nO3deXxU1f3/8fdk3zcMghASlqIQxbgEEC3UQgUtFKhSMVQgFAOiVMQVRRAXRMuXouIX8KuAWEW0sohKhbKpaGQRA5hAWWVzYQmZQMJkO78/aObHmGSyTZI75vV8POZR55577n3fIZ2TT+6959qMMUYAAAAAAMCyfBo6AAAAAAAAcI/iHQAAAAAAi6N4BwAAAADA4ijeAQAAAACwOIp3AAAAAAAsjuIdAAAAAACLo3gHAAAAAMDiKN4BAAAAALA4incAAAAAACyO4h0A0GisX79eNptNNptNYWFh6ty5s15//fU62dfw4cM1fPjwWm3DZrNp/fr1Hslzod/85jfOz+Hnr/ry5JNPOvfp4+OjVq1aaezYsTp9+nS9ZQAAwJv4NXQAAADq21tvvaUmTZrojTfe0MiRI3X48GE9+eSTHt2HJ7a3efNmXXrppbUP8zNz585Vbm6uvv/+e/3hD3/Q9OnT1aNHD4/vpzIBAQHauHGjCgoKtHXrVj3xxBPKzMzUmjVr6j0LAABWR/EOAGh0OnbsqKSkJPXu3Vvnzp3T1KlTNWbMGDVt2tRj+0hISKj1Nq699traBylH6R8EDh48KElq27Ztne3LHZvN5txvt27dJEl//etfdejQIbVq1are8wAAYGVcNg8AaNRGjRqlwsJC/etf/2roKI1eaSF/5MiRBk4CAID1ULwDABq1K6+8UpKUlZUlSXr33Xd1+eWXKzg4WFdddVWZS7h37typXr16KTg4WK1atdITTzyhoqKiMtut6J53Y4yeeuopxcfHKyQkRFdeeaVWrlxZbraK7nk/c+aMRo8erZiYGEVGRmr48OHKzs52tickJGjBggV67rnn1KxZM0VHR2vs2LEyxlT1Y9GCBQuUkJAgh8Ohxx57TPHx8Zo/f77LOq+88oratm2r0NBQ3XDDDdq2bZtL+9q1a9W5c2cFBQWpQ4cOWrRokdt9/vDDD5Kk2NhYSVJxcbGefPJJtWzZUuHh4erTp4/279/v0uf9999Xu3btFB0drbvuukujRo1SVFSUvvvuO0nnb1/4zW9+o5ycHI0ZM0bNmzfX2rVrnf2rso85c+aoffv2Cg4OVvv27bVw4UKX9u3bt6tnz56KiIhQbGysRowYobNnz7qsM2PGDMXHxysoKEg9e/bUzp07Xdp/85vf6Mknn1RWVpb69eunqKgoFRcXu/28AACNC8U7AKBRi4mJkSRlZ2dr7dq1Gjx4sG677TZ98skn6tq1q26++Wbt2rVLknT06FH16NFDJSUl+uCDD/T0009r5syZeuaZZ6q8vzfeeENTpkzRI488oo8//ljdunXTrbfeqlOnTlV5GwMGDNCKFSv0yiuvaN68efr000/Vp08fl2Jv5syZWr58uV5//XU9/PDDmjVrlj766KMq76PUoEGD9Omnn2r8+PHq0qWLc/m8efN0//33a9y4cfr444/VtGlT/fa3v9XJkyclSbt371afPn107bXXatWqVbr99tuVkpJS4f3su3bt0pQpU5SYmKh27dpJkqZMmaKZM2fq2Wef1fLly3X27Fn16tXL+ceSAwcOKCUlRWPGjNE777yjf//738rNzdXHH3/s/AOAJBUUFKhnz546dOiQHn/8cbVv397ZVtk+1q9fr7vvvltDhgzRJ598ojvuuEOpqanKzMx0bqN///4qLCzU8uXL9corr+iTTz7R008/7Wx/+umnNWHCBN1zzz364IMP5OPjo+7du+vQoUMun8H+/fvVo0cPtWzZUs8884x8fPg1DQBwAQMAQCOxbt06I8ls27bNuaygoMBIMmlpaaZHjx6mf//+zrbi4mJz0UUXmUmTJhljjHnsscdMVFSUOX36tHOdmTNnmkcffbTMvoYNG2aGDRtWZvnkyZNNZGSkOXfunDHGmDNnzpgVK1a4bLOUJLNu3bpyj2HVqlXOZZs2bTKSzLJly4wxxsTHx5vmzZub3Nxc5zodO3Y0zzzzjMu2Dhw4YCSZpUuXltn3/PnzjSTTv39/U1RUVKY9Pj7e3Hfffc732dnZxtfX18ybN895/ElJSS59rr76ajN06FDn5yDJ5ZWYmGgyMzONMcbk5+eboKAg8/e//93Zf/v27UaSWbt2rTHGmPfee880bdrU2f7www+bm266yWWfpfu59957yxxDVfZR+jn88MMPxpjzPxMrVqww33//vTHGmMLCQuPn52emTZvm3MbXX39tNm3aZIwx5uzZsyYkJMQ89thjzvbc3FzTtGlTM27cOOeyHj16GEnmn//8Z5mcAAAYYwx/0gUANGqll5vHxMRox44dWr58ufMRZr6+vjpx4oT27NkjSdq2bZuuvPJKRUZGOvvfd999eu6556q8vzvuuEN+fn5KTExUWlqaFi9erF//+tcu23Rn8+bN8vX11Y033uhclpycrIiICG3evNm5bPjw4QoLC3O+j42NVWFhYZVzSudng3/ppZfk6+vrsjw3N1ffffedXnzxRednFR0dreLiYudntWPHDn3zzTcuj6H7+uuvne2l29+2bZs+/vhj2Ww23XffferQoYMkac+ePTp37pzuv/9+Z/9OnTo52yTpsssu08mTJ7Vx40adOnVKn376qTp27FjmOC666KJy/42qso9+/fopPj5eV199tYYNG6Y5c+YoOTlZzZo1kyT5+flp9OjReuKJJ3TLLbdo8uTJKigoUHJysiTp22+/VV5ennr16uXcb1hYmLp06eLy7yVJffr00a233lrVfx4AQCPDbPMAgEZtx44dkqTExERJ0pgxY3TXXXe5rBMVFSXp/P3qP38W+o8//qg9e/aoW7duVbrM+dJLL9WePXv0ySef6IsvvtDkyZM1adIkbdu2zeVS74qYCu5bt9lsLm1t27atdFuVad68udtZ35955hn9/ve/d1l24Yz9AwYM0OTJk13aQ0JCnP9ts9mUlJSkpKQk3XrrrZo2bZpGjBjh8seCefPm6aqrrnLZRsuWLZ35WrZsqe7du6ukpESdO3fWxIkTy+RMTEx0+UPGz7nbR5MmTZSZmalVq1Zp48aNevHFFzVhwgR99dVXuuyyyyRJL7/8soYOHar169dr/fr1evrpp/XMM8/osccec/6b/PznxsfHp8y/5YW3JQAA8HOceQcANGr/93//p6CgIN1yyy26/PLL9f333zsLyqSkJC1btsx5r/hVV12ljIwM2e12Z////d//Vf/+/at8f/Jrr72mDRs2aPDgwXrppZe0adMmHT16VB9++GGV+icnJ6u4uFgbNmxwLtu6datycnKcZ3sllTlb7knh4eFq1aqVTp486fJZvfbaa/r8888lSZdffrkOHTrk0r5x48YKJ62bNGmSDhw4oLfffluS1K5dOwUGBio3N9fZv0OHDvr73/+u7du3Szp/v/qgQYP0448/6sCBA0pPT1eTJk2q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bp369Okjh8OhXr16qV+/fho3bpwOHDighIQESdKyZcs0YsQIHTlyRCEhIcrIyNA999yjzz//3G1bVdjtdkVGRionJ0cRERHVOhYAAAAAAKqrOnVote95/7n27dvXqF/fvn1d3u/evVvt2rWTJL366qtq06aNxo0b57JORkaGunbt6vxDQadOnZSZmVlpGwAAAAAA3qzGj4rLzc1Vdna2vvjiC5fl77//vhYtWiTpfEFdlcvpCwoKNH36dI0ZM0aS1KZNm3LXs9vtat26tfO9zWaTr6+vsrOz3baVx+FwyG63u7wAAAAAALCiGhXv2dnZ6t69u9577z2lpqY6Hxd39OhR3X///dq+fbteeukl9ejRQ1FRUSopKXG7vYkTJyosLExpaWlu1/Pz81NgYKDLsqCgIOXl5bltK89zzz2nyMhI5ysuLq6ywwYAAAAAoEHUqHh/6623NHToUKWlpcnf31++vr768ssv1aNHD/Xq1UtTpkzRZ599pvXr12vixIny8al4N6tXr9acOXP09ttvy9/f3+1+Y2JidPz4cZdlubm5CggIcNtWngkTJignJ8f5Onz4cBWPHgAAAACA+lWje96bNm2qsLAwrVq1SmfPnlXPnj118OBBPfXUUxoyZIgk6b333lNBQYG++eYbJSUllbud/fv3a8iQIZo9e7Y6duxY6X6Tk5P12muvOd8fPHhQDodDMTExbtvKExgYWOZMPQAAAAAAVlTtM+9nz57V//7v/2rmzJl64YUXdPz4cW3cuFG/+tWvdNlllznXW7t2rS699FJNmzat3O3k5+erb9++GjBggPr3768zZ87ozJkzbp/N3r17d+Xk5GjhwoWSpGnTpqlXr17y9fV12wYAAAAAgDer9aPiLrvsMn322Wd69dVX9cILL+i+++7TU089pccff1xdunTRH/7wh3L7LVu2TAMHDiyz/MJHw9lsNpf3pf1SUlIUHh6u4uJibdiwQYmJiZW2VYZHxQEAAAAA6lN16tAaF+/p6ekqKSnR//zP/2jx4sXy8/PTvn371Lt3b/Xq1Utz5syRdH4m+YruO6+po0ePasuWLerWrZtiY2Or3OYOxTsAAAAAoD5Vpw6t8aPi3nrrLQ0bNkzr1q1TWlqadu/erbZt2+rjjz+Wr6+vNm/erL59+7pcSu8pLVq0UP/+/cstzt21AQAAAADgjWpUvJee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de7cOUvmvdDbb7+trl27KiEhweNZPZm5Y8eOuu2223T11VcrKipKX331laZPn27ZvElJSfrggw9kjJEkzZ8/X507d1ZkZKQlMpf3HVbVY7VKXklq06aNx7PVdebytmf1vFYd8yrKZdUxr7y8Vh/zysts5TGvsp9VK4555WW28phXXl4rj3kVfR9Ydcxz9/1Vn2Oep1C8W8jEiRMVFhamtLQ0+fn5KTAw0KU9KChIeXl5FfZxtz2r5+3UqZPWrFmjxMREpaam1kleT2U+d+6cRo0apdmzZysiIqLOsnoq75AhQ5Senq7k5GS1bt1as2bN0qpVq2S32y2becmSJTp79qzWrl2rJ554QqtWrdLp06e1cOFCS+a90Jw5czR69GiP5/R05vT0dK1YsUJfffWVcnNzdccdd+iWW25x/qJgtbwPPvigCgoKdM0116hbt256/vnnde+993o8a00zl/cdVtVjtUre+ubpzFYb89zlteqYV14uK4955eW1+phXXmYrj3mV/axaccwrL7OVx7zy8lp1zHP3fWDFMa8+v7/qTcOe+EepVatWmfDwcPPtt98aY4yZNm2a+fOf/+yyTmRkpPnpp58q7ONue1bPW+rQoUPGZrOZU6dOWTbzY489ZlJSUpzv6+oSwrr6jE+fPm0kmV27dlk287PPPmtuvPFGl35/+tOfzKOPPmrJvKX27NljoqOj6/RyR09lHjdunBk/frzzfUlJiYmJiTHbtm2zZN5Se/bsMaNGjTKXXXaZKSoq8mjW2mQudeF3WHX6WSHvhVTHlxB6OrMVxzx3eavSZpXMVh7zysv7c1Yb88rLbOUxr7y8paw65pWX2cpjXnl5S1ltzHP3fWDFMa+q3191PeZ5EsW7Bezbt8/Exsa6TFqxZs0a065dO+f7AwcOmKCgIOf/ccvr4257Vs27Zs0a8+CDDzrfHzt2zNhsNo/f0+PJzAkJCSY0NNRERkaayMhI4+/vb4KDg83dd99tybz333+/Wbx4sfP96tWrjY+Pj3NiDytmXrhwoenatavLsi5durhMVGKlvKWeffZZc+edd3osY11mvvfee82QIUOc73NyckxgYKDZsmWLJfOWOnv2rImNjTVLly71WM7aZHb3HVbZsVot74Xq8hcZT2e22phX2c+EFcc8d7msOOa5y2vVMc9dZiuOeVX5WbXamOcusxXHvKp8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",
      "text/plain": [
       "<Figure size 1200x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘图\n",
    "plt.figure(figsize=(12,3))\n",
    "plt.plot(range(last_year+1,last_year+21,1),future_preds)\n",
    "plt.title('DecisionTreeRegressor')\n",
    "plt.xticks(range(last_year+1,last_year+21,1))\n",
    "plt.xlabel('年份')\n",
    "plt.ylabel(y_columns)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bc548e6c-5f34-4bd1-b990-8f26887b3713",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f6272f5e-5c9b-49dd-8494-9f42945a6a4f",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
